php - AJAX,GET ok,POST 不行
全部标签 我正在编写一个基于Javascript的上传进度表。我想使用标准的多部分提交方法(而不是在iframe中提交文件)。在提交期间,我发送返回上传完成百分比的ajax请求,然后相应地更新进度表。这一切在FireFox和IE中都能顺利运行。但是,Safari似乎会在提交主表单后阻止完成ajax请求。在调试器中,我可以看到请求header,但似乎从未收到响应。任何人都知道这一点,或者如何解决它? 最佳答案 是的,这就是Safari和任何基于WebKit的浏览器(即GoogleChrome)的行为方式。我最近也在文件上传进度表上遇到了这个问题
我有一个我编写的控件,它有一个javascript组件和一个Web服务组件。我遇到的问题是javascript设置为:setInterval(this._checkAlertsHandler,this._messageCheckInterval*1000);这会调用一个函数,该函数会像这样进行网络服务调用:Alert.SiteAlertService.GetAlerts(this._receivedAlertsHandler,this._errorReceivedAlertsHandler);所以这是使用网络服务javascript代理方法来访问网络服务。问题在于我们的应用程序具有表单
我有以下jQueryAJAX请求://collectformdataandcreateuserobjvaruser=newUser();user.firstname=$("#usrFirstName").val();user.lastname=$("#usrSurname").val();user.role=$("#usrRole").val();//actualajaxrequest$.ajax({type:'POST',url:'http://awesome-url',crossDomain:true,data:user,contentType:"application/json;
对于主要浏览器实现,是否有可在XMLHttpRequest的发送方法中使用的字符串数据的最大长度记录?当数据超过大约3k时,我遇到了JavaScriptXMLHttpRequest发布在FireFox3中失败的问题。我假设Post的行为与传统的FormPost相同。W3C文档提到发送方法的数据参数是一个DOMString,但我不确定主要浏览器是如何实现它的。这是我的JavaScript的简化版本,如果bigText超过大约3k,它会失败,否则它会工作......varxhReq=createXMLHttpRequest();functioncreateXMLHttpRequest(){
从一个更通用的问题开始。如果是JSON请求,ajax请求的响应大小是否有限制?我正在通过JSON请求传递大量数据,并在FF3中遇到“脚本堆栈配额已用尽”消息。现在在FF2中配额是4mb,但在FF3中是640kb。我想知道这是否以某种方式特定于JSON。正常的ajax请求是否有响应大小限制?一个可能是由浏览器强加的?如果非JSON请求没有这些与脚本堆栈配额相同的问题,我如何对返回的数据进行分类?也许是XML...我不确定我是否会在w3c规范的范围内使用我的数据来这样做。 最佳答案 iirc这是去年FF3的一个错误,但我相信(是的,检查
每当我创建一个jQuery.ajax请求时,当URL使用HTTP协议(protocol)时它工作正常。但是当我向HTTPs服务器发送相同的请求时,发送时没有header[HTTP_X_REQUESTED_WITH:XMLHttpRequest]。因此服务器无法知道这是一个AJAX请求!我试过:切换$.ajax、$.post、$.get使用beforeSend强制header设置CrossDomain:true注意:没有跨域问题,请求有效并得到处理,但不是AJAX。当当前URL为http但请求的URL位于同一域但使用HTTPS时,会发生此问题。http://example.com/hom
我正在使用TwitterBootstrap的按钮加载状态(http://twitter.github.com/bootstrap/javascript.html#buttons)。HTML:JS:(function($,undefined){$("#accountRegister").click(function(){$(this).button('loading');$.ajax({type:"POST",url:"/?/register/",data:$("#loginForm").serialize(),error:function(xhr,ajaxOptions,thrownE
我注意到像http://hypem.com这样的网站这是一个完整的ajax站点,现在已经设法废弃了他们的#!ajax网址,但维护了一个完整的ajax站点。这怎么可能? 最佳答案 你可以用history.pushState做到这一点,不过只能在合适的浏览器中;)https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history这是一个jQuery插件,它可以让旧浏览器回退到散列URL:http://plugins.jquery.com/project/histor
好的,当我加载页面时会解析以下HTML代码:alert("bla");这显然会导致提示“bla”,在我的AJAX调用之后,解析的HTML代码如下所示:alert("ajaxbla");另一方面,这不会导致警报。为什么?我该如何解决这个问题? 最佳答案 如果有任何脚本从Ajax调用加载到您的dom中,出于安全原因,它们不会被执行。要让脚本执行,您需要将其从响应中剥离,并通过eval运行它理想情况下,您希望在ajax请求完成时将脚本作为回调运行。如果您使用的是jQuery,这将是您的ajax调用的success事件,如果您使用nativ
想象这样一种场景,我们想要在对“foo”和“bar”的并发请求成功完成后做一些事情,或者如果其中一个或两个失败则报告错误:$.when($.getJSON('foo'),$.getJSON('bar')).then(function(foo,bar){console.log('IfireifBOTHrequestsaresuccessful!');}).fail(function(){console.log('Ifireifoneormorerequestsfailed.');});我如何确定1)对“foo”的请求是否失败,或者2)对“bar”的请求是否失败,或者3)如果两者都失败了?